local packer = require('packer')
packer.startup({
  function(use)
    -- Packer 可以管理自己本身
    use('wbthomason/packer.nvim')
    -- 你的插件列表...
    -- onedark
    use('ful1e5/onedark.nvim')

    -- nvim-tree 文件树
    use({
      'kyazdani42/nvim-tree.lua',
      requires = 'kyazdani42/nvim-web-devicons',
    })

    -- bufferline buff控制
    use({
      'akinsho/bufferline.nvim',
      requires = { 'kyazdani42/nvim-web-devicons', 'moll/vim-bbye' },
    })

    -- lualine 显示文件状态
    use({
      'nvim-lualine/lualine.nvim',
      requires = { 'kyazdani42/nvim-web-devicons' },
    })
    use('arkav/lualine-lsp-progress')

    -- telescope 文件查询
    use({
      'nvim-telescope/telescope.nvim',
      requires = { 'nvim-lua/plenary.nvim', { 'kdheepak/lazygit.nvim' } },
    })

    -- 启动页
    use({
      'glepnir/dashboard-nvim',
      event = 'VimEnter',
      requires = { 'nvim-tree/nvim-web-devicons' },
    })

    -- 搜索项目
    use('ahmedkhalf/project.nvim')
    -- 终端切换
    use({ 'akinsho/toggleterm.nvim' })

    -- 代码高亮
    use({ 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' })

    --------------------- LSP --------------------
    --, commit = "36b44679f7cc73968dbb3b09246798a19f7c14e0"
    -- use({ 'williamboman/nvim-lsp-installer' })
    -- Lspconfig
    -- use({ 'neovim/nvim-lspconfig' })
    -- use({ "williamboman/nvim-lsp-installer", commit = "36b44679f7cc73968dbb3b09246798a19f7c14e0" })
    -- use({ 'williamboman/nvim-lsp-installer' })
    -- Lspconfig
    -- use({ 'neovim/nvim-lspconfig' })
    use({ 'neoclide/coc.nvim', branch = 'release' })

    -- 补全引擎
    -- use('hrsh7th/nvim-cmp')
    -- -- snippet 引擎
    -- use('hrsh7th/vim-vsnip')
    -- -- 补全源
    -- use('hrsh7th/cmp-vsnip')
    -- use('hrsh7th/cmp-nvim-lsp') -- { name = nvim_lsp }
    -- use('hrsh7th/cmp-buffer') -- { name = 'buffer' },
    -- use('hrsh7th/cmp-path') -- { name = 'path' }
    -- use('hrsh7th/cmp-cmdline') -- { name = 'cmdline' }

    -- 常见编程语言代码段
    -- use('rafamadriz/friendly-snippets')

    -- ui 图标
    use('onsails/lspkind-nvim')
    use('tami5/lspsaga.nvim') -- ui 增强

    -- indent-blankline 展示上下文竖线
    use('lukas-reineke/indent-blankline.nvim')

    -- 代码格式化
    use('mhartington/formatter.nvim')
    --    use({
    -- 'jose-elias-alvarez/null-ls.nvim',
    -- requires = 'nvim-lua/plenary.nvim',
    --})

    -- nvim-autopairs 自动补全括号
    use('windwp/nvim-autopairs')

    -- Comment 注释代码
    use('numToStr/Comment.nvim')
    -- go 方法注释
    use('glepnir/coman.nvim')

    -- 自动保存
    use('Pocco81/AutoSave.nvim')
    -- git 比较工具
    use({ 'lewis6991/gitsigns.nvim' })
    -- diffview 根据git查看修改文件
    use({ 'sindrets/diffview.nvim', requires = 'nvim-lua/plenary.nvim' })

    -- 大纲
    use('simrat39/symbols-outline.nvim')
    -- 按键提示功能
    use('folke/which-key.nvim')
    -- use({
    --     'AckslD/nvim-whichkey-setup.lua',
    --     requires = { 'liuchengxu/vim-which-key' },
    -- })

    -- Lua 增强
    -- use('folke/lua-dev.nvim')
    -- JSON 增强
    -- use('b0o/schemastore.nvim')
    -- go 增强
    --use('ray-x/go.nvim')
    --use('ray-x/guihua.lua')

    -- debuy
    use('puremourning/vimspector')
    -- use('mfussenegger/nvim-dap')
    -- use('theHamsta/nvim-dap-virtual-text')
    --  use('rcarriga/nvim-dap-ui')
  end,
  config = {
    -- 并发数限制
    max_jobs = 16,
    -- 自定义源
    git = {
      -- default_url_format = 'https://hub.fastgit.xyz/%s',
      -- default_url_format = "https://mirror.ghproxy.com/https://github.com/%s",
      -- default_url_format = "https://gitcode.net/mirrors/%s",
      -- default_url_format = "https://gitclone.com/github.com/%s",
    },
  },
})

-- 每次保存 plugins.lua 自动安装插件
-- pcall(
-- vim.cmd,
--[[
    -- augroup packer_user_config
    -- autocmd!
    -- autocmd BufWritePost plugins.lua source <afile> | PackerSync
    -- augroup end
  --]]
--)
